/******************************************************
Cours : LOG210
Session : H2012
Groupe : 02
Équipe : 03
Projet : Laboratoire #1
Étudiant(e)(s) : Philippe Nichols
                 Dalin Son
                 Nicholas Lefebvre
                 Jean-Philippe Chapdelaine
Code(s) perm. : NICP29109007
                SOND05099000
                LEFN06078909
                CHAJ13099001
Professeur : François Caron
Chargé de labo : Jean-Philippe Martin
Nom du fichier : Gui.java
Date créé : 2012-01-25
Date dern. modif. 2012-01-25
*******************************************************
Historique des modifications
*******************************************************
2012-01-25 Création de la classe
*******************************************************/

package vue;

import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;

/**
 * Classe servant à donner des fonctions importantes à ceux qui hérite de cette classe
 * @author Dalin Son
 */
public abstract class Menu extends JMenu
{
    /**
	 * Généré pour enlever un warning
	 */
	private static final long serialVersionUID = 2656888381565103842L;

	/**
     * Classe abstraite pour initialiser les menus
     */
    public Menu()
    {
    }
    
    /**
     * Fonction initialisant ce menu
     * @param text le text affiché dessus le bouton
     * @param mnemonic le bouton raccourci lorsque l'on pèse sur alt
     */
    protected void init(String text, char mnemonic)
    {
    	this.setText(Localisation.getResource(text));
        this.setMnemonic(mnemonic);
    }
    
    /**
     * Fonction initialisant et ajoutant un JMenuItem à ce menu
     * @param menu le menu que l'on veux ajouter
     * @param action la classe qui va géré son évènement
     * @param text le text affiché dessus le bouton
     * @param icon l'icone à coté du texte
     * @param mnemonic le bouton raccourci lorsque l'on pèse sur alt
     * @param mask le masque avant de peser sur le bouton raccourci
     * @param racc le bouton raccourci
     * @param name le nom du bouton (
     */
    protected void menuItemInitAndAdd(JMenuItem menu, ActionListener action, String text, String icon, char mnemonic, int mask, char racc, String name)
    {
    	menu = new JMenuItem();
    	menu.addActionListener(action);
    	menu.setText(Localisation.getResource(text));
    	menu.setIcon(new ImageIcon(ClassLoader.getSystemResource(icon)));
    	menu.setMnemonic(mnemonic);
    	menu.setAccelerator(KeyStroke.getKeyStroke(racc,mask));
    	menu.setName(name);
    	this.add(menu);
    }
}
